﻿//
// App.xaml.h
// Declaration of the App class.
//

#pragma once

#include "App.g.h"
#include "MainPage.xaml.h"
#include "../Rendering/GameRenderer.h"
#include "GameEngine.h"

namespace Coding4Fun
{
namespace Maelstrom
{
namespace GameConsole
{
	/// <summary>
	/// Provides application-specific behavior to supplement the default Application class.
	/// </summary>
	ref class App sealed
	{
	public:
		App();
		virtual void OnLaunched(Windows::ApplicationModel::Activation::LaunchActivatedEventArgs^ args) override;

	private:
		void OnSuspending(Platform::Object^ sender, Windows::ApplicationModel::SuspendingEventArgs^ args);
		void OnUnhandledException(Platform::Object^ sender, Windows::UI::Xaml::UnhandledExceptionEventArgs^ args);

		void OnRendering(
			_In_ Object^ sender,
			_In_ Object^ args
			);

		Windows::Foundation::EventRegistrationToken         m_onRenderingEventToken;
		
		MainPage^											m_mainPage;
		GameEngine^											m_gameEngine;
		GameRenderer^										m_renderer;
	};
}}
}
